#pragma once

#include "GameObjects\Sphere.h"

using namespace Platform;

ref class Paddle : Sphere
{
public:
		
internal:

	Paddle();
	void Normal(DirectX::XMFLOAT3 normal);
	DirectX::XMFLOAT3 Paddle::Normal();
	XMVECTOR VectorNormal();

	void NormalizedPosition(DirectX::XMFLOAT3 normalizedPosition);
	DirectX::XMFLOAT3 NormalizedPosition();

	virtual void Update(GameEngine^ engine) override;

	float Power();
	void Power(float _power);

private:
	DirectX::XMFLOAT3   m_normal;
	DirectX::XMFLOAT3	m_normalizedPosition;

	DirectX::XMFLOAT3   m_oldPosition;

	float m_power;
};


__forceinline void Paddle::NormalizedPosition(DirectX::XMFLOAT3 normalizedPosition)
{
	m_normalizedPosition = normalizedPosition;
}

__forceinline DirectX::XMFLOAT3 Paddle::NormalizedPosition()
{
	return m_normalizedPosition;
}

__forceinline void Paddle::Normal(DirectX::XMFLOAT3 normal)
{
	m_normal = normal;
}

__forceinline DirectX::XMFLOAT3 Paddle::Normal()
{
	return m_normal;
}

__forceinline XMVECTOR Paddle::VectorNormal()
{
	return DirectX::XMLoadFloat3(&m_normal);
}

__forceinline void Paddle::Power(float _power)
{
	m_power = _power;
}

__forceinline float Paddle::Power()
{
	return m_power;
}
